package org.jeecg.modules.htxincailiao.account.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.util.SmartVerificationUtil;
import org.jeecg.modules.htxincailiao.account.constant.HTAccountTypeEnum;
import org.jeecg.modules.htxincailiao.address.domain.vo.HTAddressVO;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;


@Data
public class HTAccountAddDTO {

    @NotNull(message = "用户类型不能为空")
    @ApiModelProperty(value = "账户类型:-1-后台用户 0-平台会员 1-问答专家 2-平台商户 3-评估机构 4-联盟成员")
    private HTAccountTypeEnum accountType;


    /**用户名*/
    @NotNull(message = "用户名不能为空")
    @ApiModelProperty(value = "用户名")
    private String username;

//    /**手机号*/
    @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确")
    @NotNull(message = "手机号不能为空")
    @ApiModelProperty(value = "手机号")
    private String phoneNumber;

    /**
     * 邮箱
     */
    @Excel(name = "邮箱", width = 15)
    @ApiModelProperty(value = "邮箱")
    private String email;

    @Excel(name = "验证码", width = 15)
    @ApiModelProperty(value = "验证码")
    private String captcha;

    /**密码*/
    @NotNull(message = "密码不能为空")
    @Length(min = 8, message = "密码最少为8位字符")
    @ApiModelProperty(value = "密码")
    private String password;

    /**姓名*/
    @ApiModelProperty(value = "姓名")
    private String realName;

    /**昵称*/
    @ApiModelProperty(value = "昵称")
    private String nickname;


    /**工号*/
    @ApiModelProperty(value = "工号")
    private String workNumber;


    /**头像*/
    @ApiModelProperty(value = "头像")
    private String avatar;

    /**性别*/
    @Dict(dicCode = "sex")
    @ApiModelProperty(value = "性别")
    private Integer gender;

    /**生日*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "生日")
    private java.util.Date birthday;

    /**职位*/
    @ApiModelProperty(value = "职位")
    private String position;


    /**简介*/
    @ApiModelProperty(value = "简介")
    private String introduction;

    /**经营模式*/
    @Excel(name = "经营模式", width = 15, dictTable = "ht_business_model_category", dicText = "name", dicCode = "id")
    @Dict(dictTable = "ht_business_model_category", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "经营模式")
    private String businessModelId;
    /**注册资金*/
    @Excel(name = "注册资金", width = 15)
    @ApiModelProperty(value = "注册资金")
    private String registeredCapital;
    /**年营业额*/
    @Excel(name = "年营业额", width = 15)
    @ApiModelProperty(value = "年营业额")
    private String yearlyTurnover;

    /**是否冻结*/
    @Dict(dicCode = "is_locked")
    @ApiModelProperty(value = "是否冻结")
    private Integer isLocked;

    /**审核状态*/
    @Excel(name = "审核状态", width = 15, dicCode = "audit_status")
    @Dict(dicCode = "audit_status")
    @ApiModelProperty(value = "审核状态")
    private Integer auditStatus;

    /**逻辑删除：1表示删除，0表示未删除。*/
    @ApiModelProperty(value = "逻辑删除：1表示删除，0表示未删除。")
    private Integer isDeleted;

    /**企业名*/
    @ApiModelProperty(value = "企业名")
    private String enterpriseName; /**企业名*/

    /**所属机构*/
    @Excel(name = "所属机构", width = 15)
    @ApiModelProperty(value = "所属机构")
    private String agencyName;

    /**forums分类ID*/
    @Excel(name = "forums分类ID", width = 15, dictTable = "ht_forums_category", dicText = "name", dicCode = "id")
    @Dict(dictTable = "ht_forums_category", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "forums分类ID")
    private String forumsCategoryId;

    /**开户银行*/
    @ApiModelProperty(value = "开户银行")
    private String bankAccountName;

    /**银行账号*/
    @ApiModelProperty(value = "银行账号")
    private String bankAccountNum;

    /**税号*/
    @ApiModelProperty(value = "税号")
    private String taxId;

    /**机构Logo*/
    @ApiModelProperty(value = "机构Logo")
    private String logo;

    /**企业主图*/
    @ApiModelProperty(value = "企业主图")
    private String cover;


    /**行业分类ID*/
    @Excel(name = "行业分类ID", width = 15, dictTable = "ht_industry_category", dicText = "name", dicCode = "id")
    @Dict(dictTable = "ht_industry_category", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "行业分类ID")
    private String industryCategoryId;

    /**资质证件*/
    @Excel(name = "资质证件", width = 15)
    @ApiModelProperty(value = "资质证件")
    private String certificateAttachment;

    /**营业执照*/
    @Excel(name = "营业执照", width = 15)
    @ApiModelProperty(value = "营业执照")
    private String certificate;

    /**其他资质*/
    @Excel(name = "其他资质", width = 15)
    @ApiModelProperty(value = "其他资质")
    private String otherCertificates;

    /**联盟ID*/
    @Excel(name = "联盟ID", width = 15, dictTable = "ht_alliance", dicText = "enterprise_name", dicCode = "id")
    @Dict(dictTable = "ht_alliance", dicText = "enterprise_name", dicCode = "id")
    @ApiModelProperty(value = "联盟ID")
    private String allianceId;

    /**部门ID*/
    @Excel(name = "部门ID", width = 15, dictTable = "ht_alliance_depart", dicText = "name", dicCode = "id")
    @Dict(dictTable = "ht_alliance_depart", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "部门ID")
    private String departId;

    /**引理摘要*/
    @Excel(name = "引理摘要", width = 15)
    @ApiModelProperty(value = "引理摘要")
    private String lemmaSummary;


    private String merchantId;

    private String sysUserId;



    private String salt;


    private HTAddressVO address;

}
